#if !defined(FAKE_D3D10_SHADER_RESOURCE_VIEW_H)
#define FAKE_D3D10_SHADER_RESOURCE_VIEW_H

#include "Fakes/FakeD3D10View.h"
#include <rt/Exceptions/NotImplementedException.h>

class FakeD3D10ShaderResourceView : public ID3D10ShaderResourceView
{
public:
	FakeD3D10ShaderResourceView()
		: View()
	{
	}

	CONTAIN_VIEW(View);

	virtual void STDMETHODCALLTYPE GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) { throw rt::NotImplementedException(); }
};

#define CONTAIN_SHADER_RESOURCE_VIEW(member_) \
	CONTAIN_VIEW(View); \
	FakeD3D10ShaderResourceView member_; \
	virtual void STDMETHODCALLTYPE GetDesc(D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) { member_.GetDesc(pDesc); }

#endif
